SLA Engine Component
Summary
The SLA Engine represents the component responsible for generating, storing and observing the formal documents describing electronic agreements between the parties involved in CloudSocket: BPaaS bundle customers, brokers and cloud providers. The component follows the WS-Agreement specification. This means that the documents representing templates and agreements are valid according to the schema defined in the specification. The specification is extended where needed to cover some specific CloudSocket needs.
This component will expose:
- A graphical user interface for checking the status of agreements,
- A REST API interface allowing programmatic access to the different types of functionalities offered.
The main functionalities are:
- Generation of WS-Agreement templates and agreements.
- Management of SLA related entities: templates, agreements, providers, violations, penalties
- Assessment of SLOs and corresponding penalties when an SLO is violated.
- Notification of detected violations and incurred penalties to interested parties.
- ...
Type of ownership | Extension & Adaptation |
Original tool | SLA Framework asset |
Planned OS license | Apache License Version 2.0. |
Reference community | None |
Consist of
- SLA Engine (core functionalities)
- SLA Dashboard (Graphical User Interface)
- SLA Generator (generates WS-Agreement compliant documents)
Depends on
- Monitoring
Component responsible
Developer | Company | |
---|---|---|
Roman Sosa Gonzalez | roman.sosa@atos.net | Atos |
Joaquin Iranzo | Joaquin.iranzo@atos.net | Atos |
Architecture design
Figure: General architecture for SLA Engine
The SLA Engine in CloudSocket is composed of three main components:
- SLA Core. It relies on the Atos SLA Framework asset, with some CloudSocket-related modules. It contains all the basic functionality. The main subcomponents are:
- Repository. Database of WSAG related entities.
- Assessment. It is in charge of the evaluation process of the SLA agreements. It notifies raised violations and penalties to interested observers (i.e., an Accounting component).
- REST Service. It is the REST interface of the SLA Core to the world.
- WSAG Generator. It generates WSAG-compliant templates and agreements according to the requirements of allocation and marketplace, respectively.
- Colosseum Adapter. It is charge of: i) subscribing into Colosseum to the appropriate metric events, and ii) to receive events and translate them into the internal SLA representation.
- SLA Dashboard. This component is a frontend application where the user/admin can check the
status of agreements and the penalties that have been applied.
The related components with the SLA Engine in CloudSocket are:
- Monitoring. It reports the metric data and violations of metric conditions to the SLA Core.
- Allocation. The Allocation Environment contacts the SLA Generator to obtain a template that describes the service level of a BPaaS Bundle.
- Marketplace. The Marketplace contacts the SLA Generator to obtain the agreement (the document that acts as a contract between the customer and the broker) when a customer purchases a BPaaS Bundle.
Installation manual
Development
Requirements
- Oracle JDK >= 1.6
- Database to install the database schema for the service: Mysql>=5.0
- Maven >= 3.0
Installation
All commands shown here are ready to be executed from the root directory of the sla-core project (i.e., the one with the configuration.properties file)
- Download source code from gitlab
git clone https://omi-gitlab.e-technik.uni-ulm.de/cloudsocket/sla-framework.git
- Compile SLA Engine
cd sla-core mvn clean install
- Create database in mysql
$ mysql -p -u root mysql> CREATE DATABASE atossla; mysql> CREATE USER atossla@localhost IDENTIFIED BY '_atossla_'; mysql> GRANT ALL PRIVILEGES ON atossla.* TO atossla@localhost;
- Execute server. The following command will start a SLA Engine server in port 8080.
bin/runserver.sh [port]
User manual
API Specification
The SLA Framework API will be extended in CloudSocket.